Solved

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

Posted on 2004-04-15
9
190 Views
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.
0
Comment
Question by:WhlGyro
9 Comments
 
LVL 2

Accepted Solution

by:
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.
0
 
LVL 7

Assisted Solution

by:leflon
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

leflon
0
 
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: http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 9

Assisted Solution

by:Cayce
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 (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):  
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JIntroduction-to-AlgorithmsFall2001/CourseHome/index.htm
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/
0
 
LVL 2

Expert Comment

by:guntherothk
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.

0
 
LVL 7

Expert Comment

by:leflon
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.

cheers
leflon
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Errors will happen. It is a fact of life for the programmer. How and when errors are detected have a great impact on quality and cost of a product. It is better to detect errors at compile time, when possible and practical. Errors that make their wa…
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 goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
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.

759 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now