Go Premium for a chance to win a PS4. Enter to Win


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

Posted on 2004-04-15
Medium Priority
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 116 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 108 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 108 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: http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.


Assisted Solution

Cayce earned 108 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 (http://www.eclipse.org/).
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: http://www.programmingtutorials.com/java.aspx 
This is college stuff: http://chortle.ccsu.ctstateu.edu/cs151/cs151java.html
MIT programming basics: http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-821Programming-LanguagesFall2002/CourseHome/index.htm
Some books: http://www.amazon.com/exec/obidos/search-handle-url/index%3Dstripbooks%26field-keywords%3Djava/104-6404583-1291935
Algorithms (This is mostly math, I've got this book on print. It's the best, not for the weakly-hearted):  
More Computing Theory: http://mitpress.mit.edu/sicp/full-text/book/book.html
Data Structures in Java: http://www.cs.brown.edu/cgc/jdsl/, http://loki.cs.brown.edu:8081/webdsa/

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: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone 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

What is C++ STL?: STL stands for Standard Template Library and is a part of standard C++ libraries. It contains many useful data structures (containers) and algorithms, which can spare you a lot of the time. Today we will look at the STL Vector. …
IntroductionThis article is the second in a three part article series on the Visual Studio 2008 Debugger.  It provides tips in setting and using breakpoints. If not familiar with this debugger, you can find a basic introduction in the EE article loc…
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

972 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