AnimeSuki Forums

Register Forum Rules FAQ Members List Social Groups Search Today's Posts Mark Forums Read

Go Back   AnimeSuki Forum > AnimeSuki & Technology > Tech Support

Notices

Reply
 
Thread Tools
Old 2007-04-22, 22:18   Link #1
guest
guess
 
 
Join Date: Nov 2003
writing computer programs?

Hi, I am considering learning how to write computer programs. Can someone give me some suggestions on where and how to start? I am thinking maybe reading a book. Does taking classes a better option? Is there anything else? How did you guys start? Please take into consideration that you are talking to someone who has no prior knowledge about this. Thanks.
__________________
guest is offline   Reply With Quote
Old 2007-04-22, 22:25   Link #2
Ledgem
Love Yourself
 
 
Join Date: Mar 2003
Location: Northeast USA
Age: 28
I took a class, as it was required for my major (introductory FORTRAN and C programming). It was pretty useful. I'd say it depends on you: some people are driven enough that they can take in everything from a book and beyond. Others will buy a book, but can't motivate themselves to touch it, and require that classroom setting to make at least starting progress.
__________________
Ledgem is offline   Reply With Quote
Old 2007-04-22, 22:38   Link #3
guest
guess
 
 
Join Date: Nov 2003
Ok, what books would you recommed to a total beginner like me? What lessons would you recommend?
__________________
guest is offline   Reply With Quote
Old 2007-04-22, 22:49   Link #4
Ledgem
Love Yourself
 
 
Join Date: Mar 2003
Location: Northeast USA
Age: 28
If you just want an intro to programming, I guess any introductory book should be OK. Just go to a local bookstore or library, flip through some, and pick the one with the format you like most. Once you're more advanced, I guess it'll depend on what language you want to learn. None of my computer science friends have a single book that has all languages; there are massive books for each individual language, it seems.
__________________
Ledgem is offline   Reply With Quote
Old 2007-04-22, 22:54   Link #5
guest
guess
 
 
Join Date: Nov 2003
Quote:
Originally Posted by Ledgem View Post
If you just want an intro to programming, I guess any introductory book should be OK.
I think it might be a good idea to have a sense what this is before I jump into it. So it doesn't matter what language I choose, as long as I understand that particular book the most, it should the one I pick?
__________________
guest is offline   Reply With Quote
Old 2007-04-22, 23:18   Link #6
Aird
Member
 
Join Date: Feb 2007
I would say pick a programming language and start from there. Java or C# are relatively easy to learn and there are good free IDEs you can download for them. IDE are programs you use to writing code.

Sun has some free tutorials that you can read up on Java to get you started:
Java Tutorial

Here is one for C#:
C# Tutorial

If you want to write programs using Java, you'll need the JDK:
Java JDK

I would suggest grabbing the one that comes with Netbeans.

If you want to write programs using C#, you can DL this:
SharpDevelop

Once you know what language you want to learn, than I would suggest picking up a book on it and go from there.
Aird is offline   Reply With Quote
Old 2007-04-23, 00:24   Link #7
Phantom-Takaya
INTJ
*IT Support
 
 
Join Date: Feb 2007
Location: Alaska
Age: 31
Send a message via AIM to Phantom-Takaya Send a message via MSN to Phantom-Takaya Send a message via Yahoo to Phantom-Takaya
C is a widely known programming language, but before I make specific suggestions, may I ask what type of programming you intend to do?

But, like suggested by Ledgem (who seems to beat me to the punch all the time, heh), going to your local library or bookstore and going through each book regarding programming will help you figure out what is best suited for you and peaks your interest. The books marked "beginner's guide to..." or "... for dummies" are usually good starting points. They give you step by step guides to help get you on your feet with programming.

If you've got the money, I would also suggest taking classes. If you're pretty new to programming, I would highly suggest taking the introductory classes first. As much as reading is fun and helps you gain knowledge, nothing beats having hands on experience. Most programming classes should be able to help you with that.
__________________
"Even in a crowd, I was always alone." - Ernest Hemmingway
"God asks no man whether he will accept life. That is not the choice. You must take it. The only choice is how." - Henry Ward Beecher
Friend: "Evidence that you guys are made of epic win." Me: "That wasn't my goal. My goal is chaos, fear and...eggs."
Phantom-Takaya is offline   Reply With Quote
Old 2007-04-23, 01:23   Link #8
Syaoran
Contemplating Naruto
 
 
Join Date: Dec 2005
I don't get why people want to write computer programs if it's not going to be one's career path. No offence, but it's gonna be 500 lines of useless software of which 75% will be UI code generated by the IDE in most cases.

I used to think there was nothing greater than programming. Had an interview in Hannover for working at Fab30 even before I graduated and the first job I did was some kind of research & playing with different environments, how to make them work together and build an application for the government with it. Unfortunately it was a temporary assignment and it was the most interesting one ever.

After that I worked for another multinational in the IT sector with a fixed contract. It was a world of difference. From playing with cutting edge technology, I fell back on database administration and writing useless software for the marketing department: i.e. a stupid interface interface so those marketing people could make a report from the DB with a few clicks and that even in VBA *shudders*

Having managers who didn't understand a word of what I was talking about unlike my first job and having to do everything exactly like they said was just a nightmare... And doing something I wasn't even hired for!

The only more interesting thing I did was a java application to tidy up my data, keeping the requirements of every separate country in mind. The algorithm was done and I just had to make a nice UI, but I was forced to stop, because Eclipse wasn't on the "Approved Software" list for my machine O.o !?
If it was with VBA, it would have been allowed... Screw them and any other company that think they're delivering professional services.

After 3 years of that (I hoped I could move along to a more interesting position in that company) I said screw you and I quit, together with a disgust of everything that's programming or even IT related. I feel that studying computer science has been a waste of my time -_-

Programming apps for home or a small business in your town is a waste of your time.
__________________

Visit http://syaoran.miniville.fr/ or help them get a job (~_^)
Syaoran is offline   Reply With Quote
Old 2007-04-23, 03:53   Link #9
Tiberium Wolf
Senior Member
 
 
Join Date: Dec 2004
Location: Portugal
Age: 34
I think programming is only worth it if you actually make a usefull program and you are able to sell it. Otherwise you get those jobs described above by Syaoran.
Tiberium Wolf is offline   Reply With Quote
Old 2007-04-23, 03:53   Link #10
Jinto
Asuki-tan Kairin ↓
 
 
Join Date: Feb 2004
Location: Fürth (GER)
Age: 33
Well, the projects I worked on until now were interesting. But Syaoran is right in many points.

If you learn a programming language, do not expect you can write clean code right from the start (you will need to spend an enormous amount of time into the stuff to form a decent programming skill). There won't be troubles with 1000 lines of code most of the time, but once you break through the 10000 lines and more you will see, that a certain structure has to be found to get maintainable code out of it.

Very important is also the ability to understand what others did. Understanding the programming of others is crucial when one wants to add features to an existing program.

It is right, that the usual home made program has no significent use, even small applications demand much effort and even more in designing/programming appropriate GUIs (which is the most boring and lengthy task most of the time, unless you use the command line as your user interface of choice).

OOP (object oriented programming) versus common functional programming is another aspect. Many people learned one of the two, and cannot become friends with the other (but I suppose thats a question of practice). In my oppinion functional programming is easier to learn (its more straight forward). Functional programming most of the time gives you more control over the stuff thats going on behind the scenes (memory management and so on...). OOP is not preferable for big sized projects imo (but that might just be personal prejudice).

Languages usually for OOP are: Java, C#, some script languages....
Languages for dual use: C++, Delphi (but I consider that not a good language), some script languages
Languages for functional Programming: C, Fortran, some script languages.
(I purposely did not list stuff like Visual Basic )
(script languages I consider to be e.g. Python, Perl, PHP, Ruby - I know some of them have compilers that build stand alone executable programs.)

Programming means not to invent everything new, often one will utilize frameworks or function libraries to implement stuff developed by others. However, one needs to be carefull in the choice of such programming helpers, since not all of them are reliable to build stable programs. Certain frameworks are exclusively for one language, so in the end, the choice of programming language is also one of the frameworks/function libraries to use.

If you intend to learn a programming language because of a concrete project you want to do... well actually learn software design before, but to be a good software designer you'ld need to know very well the programming language that is used to implement the code for your project.
All I want to say is, one should not expect a clean and well expandable project right from the start, that actually demands learning and practice.

Many online tutorials seem to be written for programmers that just want to get comfortable with another language (they often start with very easy examples, but thats all what is done for the beginner most of the time - programmers usually skip these parts... and beginners usually have problems to go beyond these parts). But there is another problem, often such tutorials only deal with programming and showing stuff the language is able to do, yet are not very detailed on how software design is to be done with the language. So in the end, one might be able to write small blocks of code, and maybe one is able to somehow chain them, so that they somehow work with each other (or worse one will blow up blocks until maintainability and further work on it becomes almost impossible). However for decent software, good software design is very important.

Imo software design for functional programming languages will not be as troublesome as software design for OOP languages. If you look for a book, take one, that also includes the aspect of software design for this particular language.

In larger projects, one usually works together with other programmers. And one has to adapt to their style and the given coding guidelines - e.g. for documentation and stuff. Software design has to adapt to team work too. (there is much more to consider, but I don't think thats very helpfull now)
Jinto is offline   Reply With Quote
Old 2007-04-23, 07:08   Link #11
SeijiSensei
AS Oji-kun
 
 
Join Date: Nov 2006
Location: Mucking about
Age: 64
Much good advice here. Since you haven't really told us why you want to learn to program, I'd suggest starting with a scripting language like PHP or Python. Programming languages like C operate at a fairly low level and require you to be concerned with things like memory allocations. A scripting language gives you the chance to learn algorithmic thinking yet produce visible results fairly quickly. They work at a much higher level of computing. For instance, you can use them to launch other programs, take those programs' outputs, massage and present them attractively.

Both PHP and Python are totally free ("open-source") languages so they cost you nothing to try out. If you'd like to get your feet wet in programming, and you have a computer to spare, you might consider installing Linux on it. A full Linux distribution will include complete implementations of major languages like C, Fortran, PHP, Perl, Python, Ruby, and the like. Plus the available text editors for *nix (which you'll be using to write those programs) are much better than things like Notepad. Also the command-line "shells" in the *nix world are themselves pretty powerful and useful languages. I've written many convenient scripts in the bash shell that do things like re-encode a directory of Matroska files into AVIs. If you think trying Linux might be in your future, there's an excellent thread on the subject in this forum.

O'Reilly has excellent books on programming and other computing subjects at all levels from beginner to professional.
__________________
SeijiSensei is online now   Reply With Quote
Old 2007-04-23, 09:09   Link #12
Loniat
Paranoid Android
 
 
Join Date: Dec 2005
Location: Wherever you go, there you are
Go to http://www.pygame.org/ and have lots of fun. Also as SeijiSensei recommended, get a O'Reilly book, they are usually excellent.
Loniat is offline   Reply With Quote
Old 2007-04-23, 16:39   Link #13
guest
guess
 
 
Join Date: Nov 2003
Quote:
Originally Posted by SeijiSensei View Post
Much good advice here. Since you haven't really told us why you want to learn to program, I'd suggest starting with a scripting language like PHP or Python.
Well, right now would be just a hobby. I like this kind of stuff and actually took an introductory computer class (programming) during freshmen year. I really forgot most of it anyway so I am a total beginner for sure. I chose something else for career but I always like this stuff. No harm just a little digging, right? Who knows? It might turn into a career someday. It is not like I am working in an almost computer-free field. I say "almost" becase I don't think you can find a truly computer-free career these days.
__________________
guest is offline   Reply With Quote
Old 2007-04-23, 21:12   Link #14
Ledgem
Love Yourself
 
 
Join Date: Mar 2003
Location: Northeast USA
Age: 28
Quote:
Originally Posted by Tiberium Wolf View Post
I think programming is only worth it if you actually make a usefull program and you are able to sell it. Otherwise you get those jobs described above by Syaoran.
Or if you want to enter into certain fields of research.
__________________
Ledgem is offline   Reply With Quote
Old 2007-04-23, 21:51   Link #15
Phantom-Takaya
INTJ
*IT Support
 
 
Join Date: Feb 2007
Location: Alaska
Age: 31
Send a message via AIM to Phantom-Takaya Send a message via MSN to Phantom-Takaya Send a message via Yahoo to Phantom-Takaya
Well, you have my support. I deal with programming on the job and out of the job as a hobby. May I ask as to what type of programming you're interested in? To mess with the shell? Create applications? Like video games? Or for organizing use? These kinds of information will help everyone point you in the right direction.

A hobby isn't a bad thing, no matter how much money, time and effort you put into it. Like I said, I program as a hobby as well as a small part of my job. Although I already have a degree in mechanical engineering, I'm also taking classes to get a degree in computer systems engineering. I can honestly say I've spend over $10,000 over the course of this hobby. Another hobby I like is street racing. I'm sure I've invested at least $20,000 in my car. The reason I'm saying all this is simply that just because it's a hobby and it may not make you rich, it's something you enjoy. It's just like a job. If you don't enjoy what you're doing, then it's not worth it. Then you look for another job. One that you can enjoy.
__________________
"Even in a crowd, I was always alone." - Ernest Hemmingway
"God asks no man whether he will accept life. That is not the choice. You must take it. The only choice is how." - Henry Ward Beecher
Friend: "Evidence that you guys are made of epic win." Me: "That wasn't my goal. My goal is chaos, fear and...eggs."
Phantom-Takaya is offline   Reply With Quote
Old 2007-04-23, 23:22   Link #16
Furuno
Fuwaaa~~~
*IT Support
 
 
Join Date: Apr 2007
Location: Indonesia
Age: 24
Send a message via Yahoo to Furuno
Well i read a book... good book to read... wel i couldn't reccomend anything for that since i'm reading local books...

For a beginner try to learn simple language first such as basic or pascal... when you've already had the basic knowledge start to learn object oriented programming, with language such as C#, Java, etc. But try to learn java instead. Actually... rather than reading books about programming language tutorial, i'd prefer you to learn programming algorithmic instead since algorithm is the most basic pillar of information processing. Good algorithm book would be "The Art of Computer Programming".

However, it's a good start for you to think programming as a hobby. SO you wouldn't fell bored/burdened by it. What you have to do now is just to learn "to learn" and never get bored of it.

Well if you need support, just contact me and i'll gladly help you. Oh yeah btw, my current programming skill is BASIC, PASCAL, C, JAVA, HTML, ASP, PHP, and SQL.

Oh yeah you should choose what kind of programming will be your main course. Is it web programming, application programming, or database programming. Off course you could learn them all...
__________________

Check my Blog / Thread / Twitter for some random stuffs...
Furuno is offline   Reply With Quote
Old 2007-04-24, 08:16   Link #17
brood-faun
Senior Member
 
Join Date: Dec 2003
I thing I would like to suggest is that you type in all the codes and see the outputs yourself. You can grab plenty of programming book from the library. The internet is vast and 1000s of guides.

Anythings you don't understand, ask them in programming forums. Remember, you'll not learn simply by looking at the code. You'll need to practise yourself and write them yourself.
brood-faun is offline   Reply With Quote
Old 2007-04-24, 13:46   Link #18
Specto
Junior Member
*IT Support
 
 
Join Date: Feb 2004
Location: UK
Before you even consider starting to learn program you MUST have a reasonable understanding of how a computer works.
Understanding software like windows is not enough - you need to understand you're computers internal structure. This it vital to understanding what the code is doing! (Trust me I have seen people without this knowledge try to pick-up programming languages and they have real difficulty understanding things like variables and arrays - even in an easy language like Delphi).

I would suggest visiting your local College (UK term here - otherwise known as Sixth Form) finding out what course texts they use for Computer Science/Computing (not Information Technology) courses.

As others have mentioned above learning to program is not that difficult - anyone with almost no experience can write code. Writing *good* code however is much more difficult and takes experience - see bad examples on worse than failure.

I started out with Basic and then moved on to Delphi. Delphi is not used so much in the industry, however it is based on Pascal which is a teaching language and did give me all the concepts I required to self teach the basics of many other languages (Java, C#, C++, C).

Since you are a complete beginner it may be best to learn the concepts (e.g. Object-Oriented Programming) on an "easier" language. C and C++ are not the easiest of languages to start with.
Java, C# seem much more friendly and "protective" of the developer, additionally C# and Java allow proper graphical interfaces to be easily created (great for the feel-good factor when starting out).

Magazine cover disks can be quite useful - they often have ongoing tutorials - in fact one of my earlier projects was enhancing a bare-bones Pacman clone written in Delphi. Looking at someone else's code and having specific ideas about what I wanted to do really helped me understand better.
Specto is offline   Reply With Quote
Old 2007-04-24, 14:03   Link #19
Vexx
Obey the Darkly Cute ...
*Author
 
 
Join Date: Dec 2005
Location: On the whole, I'd rather be in Kyoto ...
Age: 56
Even if you never do anything useful with it... the skill teaches you how to express what you want more clearly (programming is notoriously unforgiving about errors) and the ripples of unintended consequences.

I'd really suggest a class unless you're adept at self-teaching. Java produces quick results (pretty pictures) rather quickly, whereas C will have you producing text for quite a while (ignores Visual C... actually ignores Visual Anything).

Caveat: much as I'd like to tout open source programming as the way to go.... if you're actually thinking of this as a job, much of the programming sector uses Microsoft's Library'o'crap so either commit to learning the Visual* system ... or learn that Java/Python/CORBA/etc or realtime/C/assem/digitalcontrol and just be willing to look harder for the *real* high tech. Also.... if you want to do the really cool stuff (astro/aero/AI/controlsystems/etc), you'd be advised to get a science or engineering degree as a basis but programming is part of your skillset. Doing, for example, real time fiber optic diagnosis software processing, circuit chip simulation kits, or kalman filter inertial system navigation software -- requires a fair amount of math and physics in your brainware.

I'm seriously burned out on programming myself, but I still tinker with AI and robotics (digital control) ... and I still mess around with Java and Python a bit. Right now, I'm focusing on neural circuit simulation just for some mental stimulation...
Vexx is offline   Reply With Quote
Old 2007-04-24, 23:48   Link #20
Ledgem
Love Yourself
 
 
Join Date: Mar 2003
Location: Northeast USA
Age: 28
Quote:
Originally Posted by Vexx View Post
Right now, I'm focusing on neural circuit simulation just for some mental stimulation...
Ironic But artificial neural networks are really neat.
__________________
Ledgem is offline   Reply With Quote
Reply

Thread Tools

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 On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 09:34.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
We use Silk.